index.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { useParams } from 'common'
  2. import { BucketsUpgradePlan } from '@/components/interfaces/Storage/BucketsUpgradePlan'
  3. import { VectorsBuckets } from '@/components/interfaces/Storage/VectorBuckets'
  4. import {
  5. RegionLimitation,
  6. VECTOR_BUCKETS_AVAILABLE_REGIONS,
  7. } from '@/components/interfaces/Storage/VectorBuckets/RegionLimitation'
  8. import { DefaultLayout } from '@/components/layouts/DefaultLayout'
  9. import { StorageBucketsLayout } from '@/components/layouts/StorageLayout/StorageBucketsLayout'
  10. import StorageLayout from '@/components/layouts/StorageLayout/StorageLayout'
  11. import { useIsVectorBucketsEnabled } from '@/data/config/project-storage-config-query'
  12. import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject'
  13. import type { NextPageWithLayout } from '@/types'
  14. const StorageVectorsPage: NextPageWithLayout = () => {
  15. const { ref: projectRef } = useParams()
  16. const { data: project } = useSelectedProjectQuery()
  17. const isVectorBucketsEnabled = useIsVectorBucketsEnabled({ projectRef })
  18. // [Joshen] We're actively looking into lifting this restriction so can remove once done
  19. const isAvailableInProjectRegion = VECTOR_BUCKETS_AVAILABLE_REGIONS.includes(
  20. project?.region ?? ''
  21. )
  22. if (!isAvailableInProjectRegion) {
  23. return <RegionLimitation />
  24. } else if (!isVectorBucketsEnabled) {
  25. return <BucketsUpgradePlan type="vector" />
  26. } else {
  27. return <VectorsBuckets />
  28. }
  29. }
  30. StorageVectorsPage.getLayout = (page) => (
  31. <DefaultLayout>
  32. <StorageLayout title="Vectors">
  33. <StorageBucketsLayout>{page}</StorageBucketsLayout>
  34. </StorageLayout>
  35. </DefaultLayout>
  36. )
  37. export default StorageVectorsPage